package com.hm.shopping.service;

import java.util.List;

import com.hm.common.su.bean.PageInfo;
import com.hm.common.su.bean.PageInfo.PageInfoParam;
import com.hm.shopping.def.GoodsShelfStatusEnums;
import com.hm.shopping.vo.GoodsIntroductionVo;

/**
 * @author shishun.wang
 * @date 2018年1月19日 下午5:00:26
 * @version 1.0
 * @describe 商品介绍
 */
public interface GoodsIntroductionService {

	/**
	 * 添加商品介绍信息
	 * 
	 * @param goodsIntroductionVo
	 */
	public void addGoodsIntroduction(GoodsIntroductionVo goodsIntroductionVo);

	/**
	 * 获取商品介绍
	 * 
	 * @param goodsId
	 * @return
	 */
	public GoodsIntroductionVo getGoodsIntroduction(String goodsId);

	/**
	 * 获取指定商铺所有商品
	 * 
	 * @param shopsId
	 * @return
	 */
	public List<GoodsIntroductionVo> getGoodsIntroductionsByShopsId(String shopsId);

	/**
	 * 商品名称模糊查询
	 * 
	 * @param goodsName
	 * @param classificationCode
	 * @param pageInfoParam
	 * @return
	 */
	public PageInfo<GoodsIntroductionVo> paggingGoodsIntroductions(String goodsName, String classificationCode, PageInfoParam pageInfoParam);

	/**
	 * 经典搭配商品拉取
	 * 
	 * @param goodsName
	 * @param classificationDetailCode
	 * @return
	 */
	public List<GoodsIntroductionVo> goodsClassicalCollocationList(String goodsName, String classificationDetailCode);

	/**
	 * 修改商品信息
	 * 
	 * @param goodsIntroductionVo
	 */
	public void updateGoodsIntroduction(GoodsIntroductionVo goodsIntroductionVo);

	/**
	 * 删除商品
	 * 
	 * @param goodsId
	 */
	public void deleteGoodsIntroduction(String goodsId);

	/**
	 * 修改商品状态是否上架
	 * 
	 * @param goodsId
	 * @param goodsShelfStatus
	 */
	public void updateGoodsIntroductionStatus(String goodsId, GoodsShelfStatusEnums goodsShelfStatus);

	/**
	 * 分页获取商品详情
	 * @param pageParam
	 * @param shopsId
	 * @param goodsName
	 * @return
	 */
	public PageInfo<GoodsIntroductionVo> queryGoodsIntroduction(PageInfoParam pageParam, String shopsId, String goodsName);

	/**
	 * 猜你喜欢
	 * @param classificationDetailCode
	 * @return
	 */
	public List<GoodsIntroductionVo> guessLikeGoodsList(List<String> classificationDetailCode);
}
